[IA64] Allocate struct vcpu from domheap.
authorAlex Williamson <alex.williamson@hp.com>
Thu, 17 Jan 2008 19:05:43 +0000 (12:05 -0700)
committerAlex Williamson <alex.williamson@hp.com>
Thu, 17 Jan 2008 19:05:43 +0000 (12:05 -0700)
Now there's no constraint to allocate struct vcpu from xenheap.
So allocate it from domain heap.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
xen/arch/ia64/xen/domain.c

index faf945cdb6994aa6bea8906e1f3481d57e97ebbe..8a552db9cf85e950975ebc37817ea46c91888fb6 100644 (file)
@@ -407,6 +407,7 @@ void relinquish_vcpu_resources(struct vcpu *v)
 
 struct vcpu *alloc_vcpu_struct(void)
 {
+       struct page_info *page;
        struct vcpu *v;
        struct thread_info *ti;
        static int first_allocation = 1;
@@ -419,8 +420,10 @@ struct vcpu *alloc_vcpu_struct(void)
                return idle_vcpu[0];
        }
 
-       if ((v = alloc_xenheap_pages(KERNEL_STACK_SIZE_ORDER)) == NULL)
+       page = alloc_domheap_pages(NULL, KERNEL_STACK_SIZE_ORDER, 0);
+       if (page == NULL)
                return NULL;
+       v = page_to_virt(page);
        memset(v, 0, sizeof(*v)); 
 
        ti = alloc_thread_info(v);
@@ -435,7 +438,7 @@ struct vcpu *alloc_vcpu_struct(void)
 
 void free_vcpu_struct(struct vcpu *v)
 {
-       free_xenheap_pages(v, KERNEL_STACK_SIZE_ORDER);
+       free_domheap_pages(virt_to_page(v), KERNEL_STACK_SIZE_ORDER);
 }
 
 int vcpu_initialise(struct vcpu *v)